import { axiosInstance } from 'src/boot/axios'
import CommonConfig from 'src/assets/js/config'

const baseUrl = CommonConfig.schemaUrl + '/v1' + '/scheme'

// 获取生产组织架构-列表结构
export function getOrganize () {
  const newUrl = baseUrl + '_flat'

  return axiosInstance.get(newUrl).then((res) => {
    return Promise.resolve(res)
  })
}

// 获取生产组织架构-嵌套结构
export function getOrganizeNested () {
  const newUrl = baseUrl + '_tree'

  return axiosInstance.get(newUrl).then((res) => {
    return Promise.resolve(res)
  })
}
/// v1/scheme_tree_role_data_privilege/{viewPrivilegeId}查询用户组织树结构4级(带用户所有角色下的数据权限)
export function getOrganizeNestedNew (viewPrivilegeId) {
  const newUrl = baseUrl + `_tree_role_data_privilege/${viewPrivilegeId}?clientType=pc`

  return axiosInstance.get(newUrl).then((res) => {
    return Promise.resolve(res)
  })
}

/**
 * 添加生产组织
 * level：组织级别，必填
 * name：名称，必填
 * lineId：产线id，必填，没有就填0
 * plantId：分厂id，必填，没有就填0
 * workshopId：车间Id，必填，没有就填0
 * parentId：父Id，必填，没有就填0
 * parentLevel：实际的level，必填，没有就填0
 * parentName：父name，必填，没有就填0
 * remark：备注
 * **/
export function addOrganize (info) {
  const newUrl = baseUrl + ''

  return axiosInstance.post(newUrl, info).then((res) => {
    return Promise.resolve((res))
  })
}

/**
 * 编辑生产组织
 * id：必填
 * name：名称，必填
 * lineId：产线id，必填，没有就填0
 * plantId：分厂id，必填，没有就填0
 * workshopId：车间Id，必填，没有就填0
 * remark：备注
 * **/
export function editOrganize (info) {
  const newUrl = baseUrl + ''

  return axiosInstance.put(newUrl, info).then((res) => {
    return Promise.resolve((res))
  })
}

/**
 * 删除部门
 * id
 * level:组织等级（1 部门 2 车间 3 产线 4 设备组），必填
 **/
export function delOrganize (params) {
  const newUrl = baseUrl + ''

  return axiosInstance.delete(newUrl, { params }).then((res) => {
    return Promise.resolve((res))
  })
}

/**
 * 批量导入
 * id
 * level:组织等级（1 部门 2 车间 3 产线 4 设备组），必填
 **/
export function importFile (files) {
  const newUrl = baseUrl + '/import'
  const formData = new FormData()
  formData.append('formData', files)

  return axiosInstance.post(newUrl, formData).then((res) => {
    return Promise.resolve((res))
  })
}
